//
//  ViagemDAO.m
//  ViagemBem
//
//  Created by Michel de Sousa Carvalho on 29/10/13.
//  Copyright (c) 2013 Michel de Sousa Carvalho. All rights reserved.
//

#import "ViagemDAO.h"
#import "AppDelegate.h"
#import "CidadeDAO.h"
@implementation ViagemDAO

+(Viagem *)criar
{
    NSManagedObjectContext *context = [(AppDelegate *) [UIApplication sharedApplication].delegate managedObjectContext];
    
    return  [ViagemDAO criarNoContexto:context];
}

+(Viagem *)criarNoContexto:(NSManagedObjectContext *)context
{
    Viagem *viagem = [NSEntityDescription insertNewObjectForEntityForName:@"Viagem" inManagedObjectContext:context];
    return viagem;
}

+ (NSArray *)listarTodasViagemDoUsuario: (NSString *) login
{
     NSManagedObjectContext *context = [(AppDelegate *) [UIApplication sharedApplication].delegate managedObjectContext];
     NSFetchRequest *request = [[NSFetchRequest alloc] initWithEntityName:@"Viagem"];
     request.predicate = [NSPredicate predicateWithFormat:@"usuario.login == %@",login];
    
    return [context executeFetchRequest:request error:nil];
}

+(Viagem *) inserirViagem:(NSDictionary*)dadosViagem
{
    
    NSManagedObjectContext *context = [ViagemDAO criarContexto];
    Viagem *viagem = [NSEntityDescription insertNewObjectForEntityForName:@"Viagem"
        inManagedObjectContext:context];
    
    viagem.cidadeOrigem = [dadosViagem objectForKey:@"cidadeOrigem"];
    viagem.cidadeDestino = [dadosViagem objectForKey:@"cidadeDestino"];
    viagem.dataInicial = [dadosViagem objectForKey:@"dataInicial"];
    viagem.dataFinal = [dadosViagem objectForKey:@"dataFinal"];
    viagem.valorReservado = [dadosViagem objectForKey:@"valorReservado"];
    viagem.tipoViagem =  [dadosViagem objectForKey:@"tipoViagem"];
    viagem.usuario= [dadosViagem objectForKey:@"usuario"];

    [context save:nil];
    return viagem;

}
+(void) excluirViagem:(Viagem*)viagemExcluir
{
    
    NSManagedObjectContext *context = [ViagemDAO criarContexto];
    [context deleteObject:viagemExcluir];
    NSError *erro;
    [context save:&erro];
    
}
+(NSManagedObjectContext*)criarContexto{ 
    NSManagedObjectContext *context = [(AppDelegate *) [UIApplication sharedApplication].delegate managedObjectContext];
    return context;
}

@end
